/*
 * UnaryOperatorAst.h
 *
 *  Created on: 28 Oct 2010
 *      Author: kn308
 */

#ifndef UNARYOPERATORAST_H_
#define UNARYOPERATORAST_H_

#include "OperatorAst.h"

#include <string>
using std::string;

namespace MAlice
{

class UnaryOperatorAst : public OperatorAst
{
private:
	ExpressionAst* mOperand;

protected:
	Twine getName(Value* value)
	{
		return Twine(getOperator()) + Twine(value->getName());
	}

	UnaryOperatorAst(const string& operatorName, ExpressionAst* operand);
public:
	ExpressionAst* getLHS();

	virtual ~UnaryOperatorAst();
};

}

#endif /* UNARYOPERATORAST_H_ */
